BKT Suomi

ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi == "B1GMH Bruttokansantuote markkinahintaan",
    tiedot == "Kausitasoitetun ja työpäiväkorjatun sarjan volyymin muutos vuodentakaisesta, %",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "BKT") |>
  ptt_plot(
    grouping = tiedot,
    title = "BKT Suomi",
    subtitle = "Vuosimuutos",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)
#> i Connecting to robonomistServer at ptt.robonomist.com
#> v Connecting to robonomistServer at ptt.robonomist.com [160ms]
#> 
#> i Connected successfully to robonomistServer 2.5.11
#> v Connected successfully to robonomistServer 2.5.11 [91ms]
#> 
#> \ Requesting get
#> v Requesting get [164ms]
#> 

BKT USA, euroalue, Suomi


# luodaan bkt:t usa, suomi ja euroalue. indeksoidaan, perusvuodeksi 2020.

# indeksointi apufunktio
indeksoi <- function(d, vuosi = 2020){
  d |> mutate(value = (value/mean(value[year(time) == vuosi])) * 100)
}

usa_bkt <-
  ptt_data_robo("fred/GDPC1") |>
  filter(time >= "2014-01-01") |>
  # indeksoi() |>
  select(tiedot = series_id, time, value) |>
  mutate(tiedot = "USA")
#> \ Requesting get
#> v Requesting get [657ms]
#> 

suomi_bkt <-
  ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi == "B1GMH Bruttokansantuote markkinahintaan",
    tiedot == "Kausitasoitettu ja työpäiväkorjattu sarja, viitevuosi 2015, miljoonaa euroa",
    time >= "2014-01-01"
  ) |>
  # indeksoi() |>
  select(tiedot, time, value) |>
  mutate(tiedot = "Suomi")
#> \ Requesting get
#> v Requesting get [141ms]
#> 

euroalue_bkt <-
  ptt_data_robo_l("eurostat/namq_10_gdp") |>
  filter(
    geo == "Euro area - 19 countries  (from 2015)",
    na_item == "Gross domestic product at market prices",
    s_adj == "Seasonally and calendar adjusted data",
    unit == "Chain linked volumes, index 2015=100",
    time >= "2014-01-01"
  ) |>
  # indeksoi() |>
  select(tiedot = na_item, time, value) |>
  mutate(tiedot = "Euroalue")
#> \ Requesting get
#> | Requesting get
#> v Requesting get [12.3s]
#> 

yhdistetty_bkt_data <- 
  rbind(usa_bkt, suomi_bkt, euroalue_bkt) |> 
  group_by(across(!c(time, value))) |>
  mutate(value = rebase(value, time, 2019)) |>
  ungroup()

# apufunktio indeksoinnin laskemiseen
avg_value_2021 <- function(d, sarja){
  d |>
    filter(tiedot == sarja) |>
    filter(year(time) == 2021) |>
    pull(value) |> mean()
}

#  Muokataan ennustedata.
bkt_vertailu_ennusteet <- 
  ennuste_data |>
  filter(sarja_nmi %in% c("BKT")) |>
  mutate(across(matches("[0-9]{4}"), ~ as.double(.x))) |>
  pivot_longer(cols = matches("[0-9]{4}"), names_to = "year") |>
  select(year, sarja_nmi, value) |>
  group_by(sarja_nmi) |>
  slice_tail(n = 2)

#muokataan suomen BKT ennustedata indeksoituun muotoon
ennuste_indeksoitu_2022 <- bkt_vertailu_ennusteet |>
  filter(year == "2022") |>
  mutate(value = avg_value_2021(yhdistetty_bkt_data, "Suomi") * (1 + value/100))

ennuste_indeksoitu_2023 <- bkt_vertailu_ennusteet |>
  filter(year == "2023")  |>
  mutate(value = (ennuste_indeksoitu_2022$value * (1 + value/100)))

ennusteet_suomi_bkt <- rbind(ennuste_indeksoitu_2022, ennuste_indeksoitu_2023) |>
  mutate(sarja_nmi = "Suomi")

# luodaan kuvaaja käyttäen yhdistettyä bkt dataa sekä muodostettua ennustedataa
yhdistetty_bkt_data|>
  ptt_plot(
    grouping = tiedot,
    title = "Bruttokansantuote",
    subtitle = "Indeksi 2019 = 100",
    caption =  "Lähde: Tilastokeskus, BEA, Eurostat ja PTT",
    rangeslider = FALSE,
    ## rangeslider = "2015-01-01",
    zeroline = F,
    hovertext =  list(rounding = 1, unit = "(indeksi 2020=100)", extra = "")
    # ,
    # axis_limits = list(y = c(89, 113))
  ) |>
  ptt_plot_add_prediction(ennusteet_suomi_bkt, custom_pred_data = TRUE)
#> No frequency attribute detected for hovertext time format, resorting to default %Y/%m/%d.

Vienti ja tuonti

ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi %in% c("P7R Tavaroiden ja palvelujen tuonti, tulona",
                       "P6K Tavaroiden ja palvelujen vienti, menona"),
    tiedot == "Kausitasoitetun ja työpäiväkorjatun sarjan volyymin muutos vuodentakaisesta, %",
    time >= "2014-01-01"
  ) |>
  mutate(
    tiedot = recode(taloustoimi,
                    "P7R Tavaroiden ja palvelujen tuonti, tulona" = "Tuonti",
                    "P6K Tavaroiden ja palvelujen vienti, menona" = "Vienti"
                    )
  ) |>
  ptt_plot(
    grouping = tiedot,
    title = "Vienti ja tuonti",
    subtitle = "%, volyymin vuosimuutos",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)
#> \ Requesting get
#> v Requesting get [205ms]
#> 

Kauppa- ja vaihtotase

ptt_data_robo_l("StatFin/kan/mata/kk/statfin_mata_pxt_12gf.px") |>
  filter(
    tiedot == "Tulojen ja menojen erotus (netto), miljoonaa euroa",
    maksutase_era %in% c("CA Vaihtotase", "G Tavarat"),
    time >= "2014-01-01"
  ) |>
  mutate(time = year(time)) |>
  with_groups(c(maksutase_era, time), filter, n() == 12) |>
  with_groups(c(maksutase_era, time), summarize, value = sum(value)/1000) |>
  mutate(
    time = make_date(time, 7),
    maksutase_era = recode(maksutase_era,
                           "CA Vaihtotase" = "Vaihtotase",
                           "G Tavarat" = "Kauppatase")
  ) |>
  ptt_plot(
    grouping = maksutase_era,
    title = "Vaihtotase ja kauppatase",
    subtitle = "Mrd. €",
    caption = "Tilastokeskus",
    rangeslider = F,
    axis_limits = list(x = c("2014-01-01","2021-12-30")),
    hovertext =  list(dateformat="Annual", rounding = 2, unit = "Mrd. €", extra = ""),
    plot_type = c("Vaihtotase" = "bar", "Kauppatase" = "scatter")
  )
#> \ Requesting get
#> v Requesting get [123ms]
#> 

Yksityinen kulutus

ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi == "P3KS14_S15 Yksityiset kulutusmenot, menona",
    tiedot == "Kausitasoitetun ja työpäiväkorjatun sarjan volyymin muutos vuodentakaisesta, %",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Yksityinen kulutus") |>
  ptt_plot(
    grouping = tiedot,
    title = "Yksityinen kulutus",
    subtitle = "Vuosimuutos",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
      zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)
#> \ Requesting get
#> v Requesting get [201ms]
#> 

Julkinen kulutus

ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi == "P3KS13 Julkiset kulutusmenot, menona",
    ## tiedot == "Kausitasoitetun ja työpäiväkorjatun sarjan volyymin muutos vuodentakaisesta, %",
    tiedot == "Trendisarjan volyymin muutos vuodentakaisesta, %",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Julkinen kulutus") |>
  ptt_plot(
    grouping = tiedot,
    title = "Julkinen kulutus",
    subtitle = "Vuosimuutos",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)
#> \ Requesting get
#> v Requesting get [22ms]
#> 

Julkinen velka

ptt_data_robo_l("StatFin/jul/jyev/statfin_jyev_pxt_12sy.px") |>
  filter(
    time >= "2014-01-01",
    tiedot == "Julkisyhteisöjen EDP-velan BKT-suhde, %"
  ) |>
  mutate(tiedot = "Julkisen sektorin EDP-velan suhde BKT:hen") |>
  select(tiedot, time, value) |>
  ptt_plot(
    grouping = tiedot,
    title = "Julkisyhteisöjen velka",
    subtitle = "Velan suhde BKT:hen, %",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  )  |>
  plotly::layout(
    yaxis = list(range = c(55,75))
  )
#> \ Requesting get
#> v Requesting get [99ms]
#> 

Tulot ja kulutus

ptt_data_robo("StatFin/kan/vtp/statfin_vtp_pxt_11sf.px") |>
  filter(
    time >= "2014-01-01",
    taloustoimi %in% c("B6NS14 Käytettävissä oleva tulo, kotitaloudet, netto",
                       "P31NCK Yksityiset kulutusmenot, menona"),
    tiedot == "Volyymin muutokset, %"
  ) |>
  mutate(taloustoimi = recode(taloustoimi,
    "B6NS14 Käytettävissä oleva tulo, kotitaloudet, netto" = "Käytettävissä olevat tulot",
    "P31NCK Yksityiset kulutusmenot, menona" = "Yksityinen kulutus"
  )) |>
  ptt_plot(
    grouping = taloustoimi,
    title = "Tulot ja kulutus",
    subtitle = "%-muutos, reaalinen",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  )
#> \ Requesting get
#> v Requesting get [128ms]
#> 

Julkisen sektorin tasapaino

ptt_data_robo_l("StatFin/jul/jali/statfin_jali_pxt_122g.px") |>
  filter(
    sektori %in% c(
      "S13 Julkisyhteisöt",
      "S1311 Valtionhallinto",
      "S1313 Paikallishallinto",
      "S1314 Sosiaaliturvarahastot"
    ),
    tiedot == "EDP-alijäämä (-) / EDP-ylijäämä (+), suhde BKT:hen, %",
    time >= "2013-01-01"
  ) |>
  mutate(sektori = recode(
    sektori,
    "S13 Julkisyhteisöt" = "Yhteensä",
    "S1311 Valtionhallinto" = "Valtio",
    "S1313 Paikallishallinto" = "Kunnat",
    "S1314 Sosiaaliturvarahastot" = "Sosiaaliturvarahastot"
  )) |>
  ptt_plot(
    grouping = sektori,
    title = "Julkisen sektorin tasapaino",
    subtitle = "Nettoluotonanto, % BKT:seen",
    caption =  "Lähde: Tilastokeskus ja PTT",
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  )
#> \ Requesting get
#> v Requesting get [100ms]
#> 

Investoinnit

ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi %in% c("P51K Kiinteän pääoman bruttomuodostus, menona",
                       "P51KXS13 Yksityiset investoinnit",
                       "P51KS13 Julkiset investoinnit"),
    tiedot == "Kausitasoitetun ja työpäiväkorjatun sarjan volyymin muutos vuodentakaisesta, %",
    time >= "2014-01-01"
  ) |>
  mutate(
    tiedot = recode(taloustoimi,
                    "P51K Kiinteän pääoman bruttomuodostus, menona" = "Investoinnit",
                    "P51KXS13 Yksityiset investoinnit" = "Yksityiset investoinnit",
                    "P51KS13 Julkiset investoinnit" = "Julkiset investoinnit"
                    )
  ) |>
  ptt_plot(
    grouping = tiedot,
    title = "Investoinnit",
    subtitle = "%, volyymin vuosimuutos",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)##  |>
#> \ Requesting get
#> v Requesting get [176ms]
#> 
## ptt_plot_create_widget("investoinnit")
ptt_data_robo_l("StatFin/kan/ntp/statfin_ntp_pxt_132h.px") |>
  filter(
    taloustoimi %in% c(
      "P51K Kiinteän pääoman bruttomuodostus, menona",
      "P51KN111+N112 Rakennusinvestoinnit",
      "P51KN113+N114 Kone-, laite- ja kuljetusvälineinvestoinnit: asejärjestelmät",
      "P51KN115+N117 Kasvatettavat varat ja henkiset omaisuustuotteet"
      ),
    tiedot == "Trendisarjan volyymin muutos vuodentakaisesta, %",
    time >= "2014-01-01"
  ) |>
  mutate(
    tiedot = recode(taloustoimi,
                    "P51K Kiinteän pääoman bruttomuodostus, menona" = "Yhteensä",
                    "P51KN111+N112 Rakennusinvestoinnit" = "Rakennus",
                    "P51KN113+N114 Kone-, laite- ja kuljetusvälineinvestoinnit: asejärjestelmät" = "Kone ja laite",
                    "P51KN115+N117 Kasvatettavat varat ja henkiset omaisuustuotteet" = "Muut (aineettomat)",
                    )
  ) |>
  ptt_plot(
    grouping = tiedot,
    title = "Investoinnit",
    subtitle = "%, muutos, trendi",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) ## |>
#> \ Requesting get
#> v Requesting get [18ms]
#> 
## ptt_plot_add_prediction(ennuste_data)## |> ## ptt_plot_create_widget("investoinnit")

Työllisyysaste

ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135z.px") |>
  filter(
    tiedot == "Työllisyysaste, 15-64-vuotiaat, %, trendi",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Työllisyysaste") |>
  ptt_plot(
    grouping = tiedot,
    title = "Työllisyysaste",
    subtitle = "%, trendi",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)##  |>
#> \ Requesting get
#> v Requesting get [308ms]
#> 
## ptt_plot_create_widget("")

Työttömyysaste

ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135z.px") |>
  filter(
    tiedot == "Työttömyysaste, %, trendi",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Työttömyysaste") |>
  ptt_plot(
    grouping = tiedot,
    title = "Työttömyysaste",
    subtitle = "%, trendi",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    hovertext =  list(rounding = 1, unit = "%", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data)
#> \ Requesting get
#> v Requesting get [36ms]
#> 

Työvoima

ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135y.px") |>
  filter(
    tiedot == "Työvoima, 1000 henkilöä",
    time >= "2014-01-01",
    sukupuoli == "Yhteensä",
    ikaluokka == "15 - 74"
  ) |>
  mutate(tiedot = "Työvoima") |>
  ptt_plot(
    grouping = tiedot,
    title = "Työvoima",
    subtitle = "1000 henkilöä",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    hovertext =  list(rounding = 0, unit = "(1000 henkilöä)", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data, hovertext = list(rounding = 0,
        unit = "(1000 henkilöä)", extra = "(ennuste)"))  ##  |>
#> \ Requesting get
#> v Requesting get [113ms]
#> 
## ptt_plot_create_widget("")

Työlliset

ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135z.px") |>
  filter(
    tiedot == "Työlliset, 1000 henkilöä, trendi",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Työlliset") |>
  ptt_plot(
    grouping = tiedot,
    title = "Työlliset",
    subtitle = "1000 henkilöä, trendi",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    hovertext =  list(rounding = 0, unit = "(1000 henkilöä)", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data, hovertext = list(rounding = 0,
        unit = "(1000 henkilöä)", extra = "(ennuste)"))
#> \ Requesting get
#> v Requesting get [112ms]
#> 

Työlliset ja työvoima


tyovoima <-
  ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135y.px") |>
  filter(
    tiedot == "Työvoima, 1000 henkilöä",
    time >= "2014-01-01",
    sukupuoli == "Yhteensä",
    ikaluokka == "15 - 74"
  ) |>
  mutate(tiedot = "Työvoima") |>
  select(tiedot, time, value)
#> \ Requesting get
#> v Requesting get [108ms]
#> 

# Lasketaan trendi työvoimalle
tyovoima <-
  tyovoima |>
  mutate(value = statfitools::trend_series(value, time = time))

tyolliset <-
  ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135z.px") |>
  filter(
    tiedot == "Työlliset, 1000 henkilöä, trendi",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Työlliset")
#> \ Requesting get
#> v Requesting get [94ms]
#> 

# yhdistetään datasetit ja piirretään
rbind(tyovoima, tyolliset) |>
    mutate(value = value / 1000) |>
    ptt_plot(
    grouping = tiedot,
    title = "Työlliset ja työvoima",
    subtitle = "Miljoonaa, trendi",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 2, unit = "(miljoonaa henkilöä)", extra = "")
  ) |>
  ptt_plot_add_prediction(ennuste_data, hovertext = list(rounding = 2,
        unit = "(miljoonaa henkilöä)", extra = "(ennuste)"),
        value_multiplier = 0.001) |>
  plotly::layout(
    yaxis = list(range = c(2.2,3))
  )
# Ei palkansaajoja käytössä # palkansaajat <- ptt_data_robo_l("StatFin/tym/tyti/nj/statfin_tyti_pxt_137l.px") |> # filter( # tiedot == "Palkansaajat, 1000 henkilöä", # time >= "2014-01-01", # toimiala == "Yhteensä" # )

Työttömyys

# työttömyysaste, jolle ennuste
tyottomyysaste <- ptt_data_robo_l("StatFin/tym/tyti/kk/statfin_tyti_pxt_135z.px") |> # työttömyysaste
  filter(
    tiedot == "Työttömyysaste, %, trendi",
    time >= "2014-01-01"
  ) |>
  mutate(tiedot = "Työttömyysaste")
#> \ Requesting get
#> v Requesting get [24ms]
#> 

# tem työttömyysaste, lisäksi tehdään trendimuutos
tem_työttömyysaste <- ptt_data_robo_l("StatFin/tym/tyonv/kk/statfin_tyonv_pxt_12tf.px") |>
    filter(tiedot == "Työttömien työnhakijoiden %-osuus työvoimasta (%)",
           alue == "KOKO MAA",
           time >= "2014-01-01") |>
    mutate(tiedot = "Työttömyyysaste (TEM)") |>
    select(tiedot, time, value) |>
    mutate(value = statfitools::trend_series(value, time = time))
#> \ Requesting get
#> v Requesting get [231ms]
#> 

# yhdistetään datasarjat ja plotataan
rbind(tyottomyysaste, tem_työttömyysaste) |>
  ptt_plot(
    grouping = tiedot,
    title = "Työttömyysaste",
    subtitle = "%, trendi",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    zeroline = T,
    hovertext =  list(rounding = 1, unit = "%", extra = ""),
    axis_limits = list(y = c(5,15))
  ) |>
  ptt_plot_add_prediction(ennuste_data)

Pitkät korot

ptt_data_robo_l("tidy/10yield") |>
  drop_na() |>
  filter(time >= "2008-01-01") |>
  select(maa, time, value) |> ## TODO bug in ptt_plot
  ptt_plot(
    grouping = maa,
    title = "Pitkät korot",
    subtitle = "%",
    caption =  "Lähde: Suomen Pankki, Deutche Bundesbank, Fed ja PTT",
    rangeslider = FALSE,
    hovertext = list(rounding = 2),
    zeroline = T
  )  |>
  ptt_plot_add_prediction(
     # tehdään ennustedatan halutuille sarjoille muunnos jotta vastaa maa -sarakkeen maita
     ennuste_data |>
       mutate(sarja_nmi = recode(sarja_nmi,
                                 "10V USA" = "USA",
                                 "10v Saksa" = "Saksa",
                                 "10v Suomi" = "Suomi"
       )),
     value_multiplier = 100
  )
#> \ Requesting get
#> v Requesting get [605ms]
#> 

Raakaöljy

ptt_data_robo("fred/DCOILBRENTEU") |>
  drop_na() |>
  filter(time >= "2012-01-01") |>
  mutate(tieto = "Raakaöljy, Brent") |>
  ptt_plot(
    grouping = tieto,
    title = "Raakaöljy",
    subtitle = "$/barreli, Brent",
    caption =  "Lähde: Energy Information Administration ja PTT",
    rangeslider = FALSE,
    hovertext = list(rounding = 2),
    zeroline = T
  ) |>
  ptt_plot_add_prediction(
    ennuste_data
  )
#> \ Requesting get
#> v Requesting get [573ms]
#> 

Valuuttakurssi

ptt_data_robo("ecb/EXR", dl_filter = "D.USD.EUR.SP00.A") |>
  drop_na() |>
  filter(time >= "2012-01-01") |>
  mutate(tieto = "Euro/USD") |>
  ptt_plot(
    grouping = tieto,
    title = "Valuuttakurssi",
    subtitle = "Yhdysvaltain dollaria per euro",
    caption =  "Lähde: Euroopan keskuspankki ja PTT",
    rangeslider = FALSE,
    hovertext = list(rounding = 2, unit = "$/€")
  ) |>
  ptt_plot_add_prediction(
    ennuste_data
  )
#> \ Requesting get
#> v Requesting get [47ms]
#> 
#> No frequency attribute detected for hovertext time format, resorting to default %Y/%m/%d.

Kuluttajahintaindeksi

cpi_es <-
  ptt_data_robo("eurostat/prc_hicp_manr", geo_labels = "fi") |>
  filter(
    geo %in% c("Suomi", "EA"),
    coicop == "All-items HICP"
  ) |>
  mutate(geo = recode(geo, EA = "Euroalue")) |>
  select(geo, time, value)
#> \ Requesting get
#> v Requesting get [2.9s]
#> 

cpi_us <-
  ptt_data_robo("fred/CPIAUCSL", units = "pc1") |>
  mutate(geo = "USA") |>
  select(geo, time, value)
#> \ Requesting get
#> v Requesting get [536ms]
#> 

bind_rows(cpi_es, cpi_us) |>
  filter(time >= "2013-01-01") |>
  mutate(geo = fct_relevel(geo, "Suomi", "Euroalue", "USA")) |>
  ptt_plot(
    grouping = geo,
    title = "Kuluttajahinnat",
    subtitle = "%-muutos",
    caption =  "Lähde: Tilastokeskus, Eurostat, BLS ja PTT",
    rangeslider = FALSE,
    hovertext = list(rounding = 1),
    zeroline = T
  ) ## |>
## ptt_plot_add_prediction( ## ennuste_data ## )

Ansiotasoindeksi

Huom. reaalinen ansiotasoindeksi poikkeaa hieman edellisen ennusteen kalvosarjan kuviosta. Tarkista onko deflaattori ja indeksikaava sama. Tässä on käytetty kansallista kuluttajahintaindeksiä.


khi_q <-
  ptt_data_robo("StatFin/hin/khi/kk/statfin_khi_pxt_11xd.px") |>
  filter(
    hyodyke == "0 KULUTTAJAHINTAINDEKSI",
    tiedot == "Pisteluku"
  ) |>
  mutate(time = floor_date(time, "quarter")) |>
  with_groups(time, summarize, khi = mean(value))
#> \ Requesting get
#> v Requesting get [758ms]
#> 

ptt_data_robo("StatFin/pal/ati/nj/statfin_ati_pxt_11zt.px") |>
  inner_join(khi_q, by = "time") |>
  transmute(time, Nimellinen = value, Reaalinen = value/khi) |>
  pivot_longer(c(Nimellinen, Reaalinen), names_to = "tieto")|>
  with_groups(tieto, mutate, value = 100 * (value/lag(value, 4, order_by = time) - 1)) |>
  filter(time >= "2013-01-01") |>
  ptt_plot(
    grouping = tieto,
    title = "Ansiotasoindeksi",
    subtitle = "%, vuosimuutos",
    caption =  "Lähde: Tilastokeskus ja PTT",
    rangeslider = FALSE,
    hovertext = list(rounding = 1),
    zeroline = T
  ) ## |>
#> \ Requesting get
#> v Requesting get [85ms]
#> 
#> No frequency attribute detected for hovertext time format, resorting to default %Y/%m/%d.
## ptt_plot_add_prediction( ## ennuste_data ## )